package com.salon.modules.sys.service;

import com.salon.common.http.response.ObjectResult;

/**
 * 用户Token
 */
public interface ISysUserTokenService {

    /**
     * 生成token
     *
     * @param userId 用户ID
     */
    ObjectResult createToken(long userId);

    /**
     * 退出，修改token值
     *
     * @param userId 用户ID
     */
    void logout(long userId);

    /**
     * 根据token获取系统用户Id
     *
     * @param accessToken
     * @return
     */
    String getSysUserIdByJwtToken(String accessToken);

    /**
     * 验证token
     *
     * @param accessToken
     * @return
     */
    boolean checkToken(String accessToken);

    /**
     * 通过userId获取token
     *
     * @param sysUserId
     * @return
     */
    Object getSysTokenBySysUserId(String sysUserId);

    /**
     * 移除redis无效token
     *
     * @param userId
     * @return
     */
    void removeToken(Long userId);

}
